package com.cheng.gmall.common.config.thread.properties;

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;

/**
 * @author Cheng-02
 * @version V1.0
 * @Package com.cheng.gmall.item.config
 * @date 2024/5/29 下午4:10
 */


/*
* int core 核心数
*int corePoolSize, 核心线程数
 int maximumPoolSize, 最大线程池数;阻塞队列满，开到最大  max-core：弹性线程
long keepAliveTime,弹性线程的存活时间：多久不干活就释放掉
TimeUnit unit,  时间单位
* ThreadFactory threadFactory， 线程工厂：创建新线程，new thread
*
* RejectedExecutionHandler handler，  拒绝策略，核心最大，队列都满了，新来的任务 启用拒绝策略
 BlockingQueue<Runnable> workQueue， 阻塞队列。任务过来，核心线程进行线程处理，核心都忙的时候，新任务进入阻塞队列
 *
 * 队列大小：
 * 1.压测：  峰值*1.5
 * 2.内存：

 * * */
@ConfigurationProperties(prefix = "app.threadpool")
@Data
public class AppThreadProperties {

    private Integer corePoolSize = 4;
    private Integer maximumPoolSize = 8;
    private Long keepAliveTime = 5L;
    private Integer workQueueSize = 1000;

}